import request from '@/utils/request'

/**
 * 管理员认证相关接口
 */

// 管理员登录
// @param {Object} data - 登录信息
// @param {string} data.username - 用户名
// @param {string} data.password - 密码
// @param {boolean} data.remember - 是否记住登录状态
// @return {Promise} 返回登录结果和token
export const login = (data) => {
  return request({
    url: '/admin/auth',
    method: 'post',
    data
  })
}

/**
 * 管理员管理相关接口
 */

// 获取管理员列表
// @return {Promise} 返回管理员列表数据
export const getAdminList = () => {
  return request({
    url: '/admin',
    method: 'get'
  })
}

// 添加管理员
// @param {Object} data - 管理员信息
// @param {string} data.username - 用户名
// @param {string} data.password - 密码
// @param {string} data.nickname - 昵称
// @param {number} data.isSuper - 是否是超级管理员
// @return {Promise} 返回新创建的管理员ID
export const addAdmin = (data) => {
  return request({
    url: '/admin',
    method: 'post',
    data
  })
}

// 更新管理员信息
// @param {number} id - 管理员ID
// @param {Object} data - 更新的管理员信息
// @return {Promise} 返回更新结果
export const updateAdmin = (id, data) => {
  return request({
    url: `/admin/${id}`,
    method: 'put',
    data
  })
}

// 删除管理员
// @param {number} id - 管理员ID
// @return {Promise} 返回删除结果
export const deleteAdmin = (id) => {
  return request({
    url: `/admin/${id}`,
    method: 'delete'
  })
}

// 更新管理员密码
// @param {Object} data - 密码信息
// @param {string} data.oldPassword - 原密码
// @param {string} data.newPassword - 新密码
// @return {Promise} 返回更新结果
export const updatePassword = (data) => {
  return request({
    url: '/admin/me/password',
    method: 'put',
    data
  })
}

/**
 * 用户管理相关接口
 */

// 获取用户列表
// @return {Promise} 返回用户列表数据
export const getUserList = () => {
  return request({
    url: '/admin/users',
    method: 'get'
  })
}

// 添加用户
// @param {Object} data - 用户信息
// @return {Promise} 返回新创建的用户ID
export const addUser = (data) => {
  return request({
    url: '/admin/users',
    method: 'post',
    data
  })
}

// 更新用户信息
// @param {number} id - 用户ID
// @param {Object} data - 更新的用户信息
// @return {Promise} 返回更新结果
export const updateUser = (id, data) => {
  return request({
    url: `/admin/users/${id}`,
    method: 'put',
    data
  })
}

// 删除用户
// @param {number} id - 用户ID
// @return {Promise} 返回删除结果
export const deleteUser = (id) => {
  return request({
    url: `/admin/users/${id}`,
    method: 'delete'
  })
}

// 更新用户状态
// @param {number} id - 用户ID
// @param {Object} data - 状态信息
// @param {number} data.status - 状态值(0:禁用 1:启用)
// @return {Promise} 返回更新结果
export const updateUserStatus = (id, status) => {
  return request({
    url: `/admin/users/${id}/status`,
    method: 'put',
    data: { status }
  })
}

// 获取用户发布的书籍
export const getUserPosts = (userId) => {
  return request({
    url: `/admin/users/${userId}/books`,
    method: 'get'
  })
}

// /**
//  * 书籍审核相关接口
//  */

// // 获取待审核的书籍列表
// // @return {Promise} 返回待审核的书籍列表
// export const getPendingBooks = () => {
//   return request({
//     url: '/admin/books/reviews',
//     method: 'get'
//   })
// }

// // 审核书籍
// // @param {number} id - 书籍ID
// // @param {Object} data - 审核信息
// // @param {string} data.action - 审核动作('approve'/'reject')
// // @param {string} data.rejectReason - 驳回原因(action为reject时必填)
// // @return {Promise} 返回审核结果
// export const reviewBook = (id, data) => {
//   return request({
//     url: `/admin/books/${id}/review`,
//     method: 'put',
//     data
//   })
// }

/**
 * 更新管理员权限
 */
export function updateAdminPermissions(adminId, permissions) {
  return request({
    url: `/admin/permissions/${adminId}`,
    method: 'put',
    data: { permissions }
  })
} 